ad041d3b5ff96ed33ea22692035f02c21b461a68,h2o-algos/src/main/java/hex/tree/DTree.java,DecidedNode,bestCol,#UndecidedNode#DHistogram#,401
Before Change
int col = u._scoreCols == null ? i : u._scoreCols[i];
if( hs[col]==null || hs[col].nbins() <= 1 ) continue;
findSplits[i] = new FindSplits(hs, col);
H2O.submitTask(findSplits[i]);
}
for( int i=0; i<maxCols; i++ ) {
if (findSplits[i]==null) continue;
After Change
nbinsSum += hs[col].nbins();
}
// for small work loads, do a serial loop, otherwise, submit work to FJ thread pool
final boolean isSmall = (nbinsSum <= 1024); //heuristic - 50 cols with 20 nbins, or 1 column with 1024 bins, etc.
for( int i=0; i<maxCols; i++ ) {
int col = u._scoreCols == null ? i : u._scoreCols[i];
if( hs[col]==null || hs[col].nbins() <= 1 ) continue;
findSplits[i] = new FindSplits(hs, col);
if (isSmall) findSplits[i].compute2();
else H2O.submitTask(findSplits[i]);
}
for( int i=0; i<maxCols; i++ ) {
if (findSplits[i]==null) continue;